home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 23 / AMIGAplus Sonderheft 23 (2000)(Falke)(DE)[!].iso / Tools / Text-Viewer / Notes / deutsch / BassSchlüssel.file < prev    next >
Text File  |  1999-11-06  |  38KB  |  1,266 lines

  1. /* Unterprogramm zu Noten.pprx */
  2.  
  3. signal on halt
  4. signal on break_c
  5. signal on break_e
  6. signal on break_d
  7. call ppm_SetStyle(N)
  8. call ppm_SetMagMode(180)
  9. call ppm_UpdateScreen()
  10.  
  11. noteneingabe:
  12.     /* Kleinster Notenabstand */
  13.     sysart = "Notensystemart:2"
  14.     systemart = ppm_Getform("Bitte noch einmal die gewählte Systemart eingeben. (2, 1v oder 1b)", 3, sysart)
  15.     select
  16.     when systemart == '2' then zdist = 4
  17.     when systemart == '1v' then zdist = 2
  18.     when systemart == '1b' then zdist = 2
  19.     otherwise noteneingabe()
  20.     end
  21.     zdist2 = zdist-2
  22.     xgrdform = "(1,2,4,8 oder 16)"
  23.     xgrd = ppm_GetForm("Bitte für den kleinsten Notenwert eingeben ...(nichts=ABBRUCH)", 3, xgrdform)
  24.     if xgrd == '' then exit_msg("Abbruch")
  25.     select
  26.      when xgrd == '1' then xg =0.7
  27.      when xgrd == '2' then xg =1.4
  28.      when xgrd == '4' then xg =2.8
  29.      when xgrd == '8' then xg =5.6
  30.      when xgrd == '16' then xg =11.2
  31.      otherwise noteneingabe()
  32.     end
  33.  
  34.    /* Punktgröße der Noten */
  35.    notepkt = 26
  36.    call ppm_SetJustification(0)
  37.  
  38.    zz = 0 /* Zeilenzähler */
  39.    notex = 2.5
  40.    page = ppm_CurrentPage()
  41.  
  42. pfad:
  43.    do
  44.            choose=ppm_Inform(2,"Auswahl des Notenfiles oder Abbruch ...", "Abbruch","File")
  45.            if choose == 0 then exit_msg("Abbruch")
  46.            eingabe = ppm_GetFileName("Bitte Notenscriptfile wählen ...", "Noten:")
  47.            res = OPEN(notenfile, eingabe, 'R')
  48.            if res == 0 then
  49.              do
  50.                  call ppm_inform(1,"Fehler in der Eingabe, oder File existiert nicht !!!","OK")
  51.                  pfad()
  52.              end
  53.            call ppm_ShowStatus("OK, ich arbeite ...")
  54.            auslesen(notenfile)
  55.    end
  56.  
  57.     /* x-Abstände der Noten zueinander */
  58. auslesen:
  59.         do
  60.           parse arg file
  61.           noten = READCH(file, 4000)
  62.           i=1
  63.           do forever
  64.             nw = word(noten, i)
  65.             nn = word(noten, i+1)
  66.             al = word(noten, i+2)
  67.             if nw == 'P' then nw = 'p'
  68.             if nw == 'D' then nw = 'd'
  69.             if nw == 'L' then nw = 'l'
  70.             if nw == 'T' then nw = 't'
  71.             if nn == 'T' then nn = 't'
  72.             if nw == 'J' then nw = 'j'
  73.             if nw == 'E' then nw = 'e'
  74.             select
  75.               when al == (X2C(410a)) then al = 'a'
  76.               when al == (X2C(610a)) then al = 'a'
  77.               when al == (X2C(300a)) then al = '0'
  78.               otherwise exit_msg("Da war ein Fehler!")
  79.             end
  80.  
  81.             select
  82.               when nn=='DB1' then nn = 'Db1'
  83.               when nn=='EB1' then nn = 'Eb1'
  84.               when nn=='GB1' then nn = 'Gb1'
  85.               when nn=='AB1' then nn = 'Ab1'
  86.               when nn=='DB2' then nn = 'Db2'
  87.               when nn=='EB2' then nn = 'Eb2'
  88.               when nn=='GB2' then nn = 'Gb2'
  89.               when nn=='AB2' then nn = 'Ab2'
  90.               when nn=='DB3' then nn = 'Db3'
  91.               when nn=='EB3' then nn = 'Eb3'
  92.               when nn=='GB3' then nn = 'Gb3'
  93.               otherwise NOP
  94.             end
  95.  
  96.             call auswahl()
  97.             i=i+3
  98.           end
  99.         end
  100.  
  101. auswahl:
  102. do
  103.     select
  104.       when nw == 'j' then do
  105.                           zz = 0   /* Zeilenzähler */
  106.                           notex = 2.5
  107.                           return
  108.                           end
  109.       when nw == 'e' then
  110.         do
  111.             call ppm_ClearStatus()
  112.             exit_msg("Geschafft!")
  113.         end
  114.       when nw == 's' then
  115.           do
  116.           xw = xg/16
  117.           nw='x'
  118.           yv = 0
  119.           end
  120.       when nw  == 'S' then
  121.           do
  122.           xw = xg/16
  123.           nw='X'
  124.           yv = 0.47
  125.           end
  126.       when nw == 'a' then
  127.           do
  128.           xw = xg/8
  129.           nw='e'
  130.           yv = 0
  131.           end
  132.       when nw == 'A' then
  133.           do
  134.           xw = xg/8
  135.           nw='E'
  136.           yv = 0.47
  137.           end
  138.       when nw == 'v' then
  139.           do
  140.           xw = xg/4
  141.           nw='q'
  142.           yv = 0
  143.           end
  144.       when nw == 'V' then
  145.           do
  146.           xw = xg/4
  147.           nw='Q'
  148.           yv = 0.47
  149.           end
  150.       when nw == 'h' then
  151.           do
  152.           xw = xg/2
  153.           yv = 0
  154.           end
  155.       when nw == 'H' then
  156.           do
  157.           xw = xg/2
  158.           yv = 0.47
  159.           end
  160.       when nw == 'g' then
  161.           do
  162.           xw = xg
  163.           nw='w'
  164.           yv = 0
  165.           end
  166.       when nw == 'G' then
  167.           do
  168.           xw = xg
  169.           nw='W'
  170.           yv = 0.47
  171.           end
  172.  
  173.       when nw == 'pk' then
  174.           do
  175.             if notex < 3 then
  176.             do
  177.               notex = bakx
  178.               zz = zz - zdist
  179.               call ppm_SetSize(25)
  180.               box#id = ppm_CreateBox(notex+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  181.               call ppm_SetSize(20)
  182.               call ppm_TextIntoBox(box#id, 'd')
  183.             end
  184.             else
  185.             do
  186.               call ppm_SetSize(25)
  187.               box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  188.               call ppm_SetSize(20)
  189.               call ppm_TextIntoBox(box#id, 'd')
  190.             end
  191.  
  192.              select
  193.                  when nn == '1' then
  194.                  do
  195.                   xw = xg
  196.                   notex = notex+xw
  197.                  end
  198.                  when nn == '2' then
  199.                  do
  200.                   xw = xg/2
  201.                   notex = notex+xw
  202.                  end
  203.                  when nn == '4' then
  204.                  do
  205.                   xw = xg/4
  206.                   notex = notex+xw
  207.                  end
  208.                  when nn == '8' then
  209.                  do
  210.                   xw = xg/8
  211.                   notex = notex+xw
  212.                  end
  213.                  when nn == '16' then
  214.                  do
  215.                   xw  = xg/16
  216.                   notex = notex+xw
  217.                  end
  218.                  when nn == 't' then
  219.                  do
  220.                   xw  = 0.2
  221.                   notex = notex+xw
  222.                  end
  223.                  otherwise
  224.                   do
  225.                    call ppm_ClearStatus()
  226.                    exit_msg("Da war ein Fehler")
  227.                   end
  228.              end
  229.            if notex >=18.7 then
  230.                do
  231.                  notex = 2.5
  232.                  zz = zz + zdist
  233.                end
  234.            return
  235.           end
  236.  
  237.       when nw == 'PK' then
  238.           do
  239.             if notex < 3 then
  240.             do
  241.               notex = bakx
  242.               zz = zz - zdist
  243.               call ppm_SetSize(25)
  244.               box#id = ppm_CreateBox(notex+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  245.               call ppm_SetSize(20)
  246.               call ppm_TextIntoBox(box#id, 'd')
  247.             end
  248.             else
  249.             do
  250.               call ppm_SetSize(25)
  251.               box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  252.               call ppm_SetSize(20)
  253.               call ppm_TextIntoBox(box#id, 'd')
  254.             end
  255.            select
  256.                when nn == '1' then
  257.                 do
  258.                  xw = xg
  259.                  notex = notex+xw
  260.                 end
  261.                when nn == '2' then
  262.                 do
  263.                  xw = xg/2
  264.                  notex = notex+xw
  265.                 end
  266.                when nn == '4' then
  267.                 do
  268.                  xw = xg/4
  269.                  notex = notex+xw
  270.                 end
  271.                when nn == '8' then
  272.                 do
  273.                  xw = xg/8
  274.                  notex = notex+xw
  275.                 end
  276.                when nn == '16' then
  277.                 do
  278.                  xw  = xg/16
  279.                  notex = notex+xw
  280.                 end
  281.                when nn == 't' then
  282.                 do
  283.                  xw  = 0.2
  284.                  notex = notex+xw
  285.                 end
  286.                otherwise
  287.                do
  288.                 call ppm_ClearStatus()
  289.                 exit_msg("Da war ein Fehler")
  290.                end
  291.            end
  292.            if notex >=18.7 then
  293.              do
  294.                notex = 2.5
  295.                zz = zz + zdist
  296.              end
  297.            return
  298.           end
  299.  
  300.  
  301.       /* Taktstrich */
  302.       when nw == 't' then
  303.           do
  304.            call ppm_SetLineWeight(0.25)
  305.            call ppm_DrawLine(notex, 2+zz+zdist2, notex, zdist2+2.8+zz)
  306.